// 百度地图功能(对象)
export default {
    // 初始化
    init() {
        const map = new BMapGL.Map('container'); // 创建Map实例
        map.centerAndZoom(new BMapGL.Point(112.57, 23.26), 12); // 初始化地图,设置中心点坐标和地图级别
        map.enableScrollWheelZoom(true); // 开启鼠标滚轮缩放
    },
    //获取标签
    getElement() {
        this.start_element = document.querySelector(".start");
        this.end_element = document.querySelector(".end");
        // console.log(this);
    },
    // 根据经纬度获取地址名称
    getLocation(lng, lat) {
        // 百度地图API功能
        var map = new BMapGL.Map("container");
        map.centerAndZoom(new BMapGL.Point(116.331398, 39.897445), 11);
        map.enableScrollWheelZoom(true);
        // 用经纬度设置地图中心点
        function theLocation() {
            // 是否传递参数
            if (lon != undefined && lat != undefined) {
                map.clearOverlays();
                var new_point = new BMapGL.Point(lng, lat);
                var marker = new BMapGL.Marker(new_point);  // 创建标注
                map.addOverlay(marker);              // 将标注添加到地图中
                map.panTo(new_point);
            }
        }
        //theLocation();
    },
    // 根据地址名称获取经纬度
    getPos(address) {
        var map = new BMapGL.Map('container');
        map.centerAndZoom(new BMapGL.Point(116.331398, 39.897445), 12);
        // 开启鼠标滚轮缩放
        map.enableScrollWheelZoom(true); 
        //创建地址解析器实例
        var myGeo = new BMapGL.Geocoder();
        // 将地址解析结果显示在地图上，并调整地图视野
        myGeo.getPoint(address, function (point) {
            // 检查这个结果中是否包含经纬度：
            console.log(point);
            if (point) {
                map.centerAndZoom(point, 16);
                map.addOverlay(new BMapGL.Marker(point, { title: address }))
            } else {
                alert('您选择的地址没有解析到结果！');
            }
        }, address)
    },
    // 步行规划
    walk(start,end){
        // 百度地图API功能
        var map = new BMapGL.Map("container");
        map.centerAndZoom(new BMapGL.Point(116.404, 39.915), 11);
        map.enableScrollWheelZoom(true); // 开启鼠标滚轮缩放
        var walking = new BMapGL.WalkingRoute(map, { 
            renderOptions: { map: map, 
                panel: "r-result", 
                autoViewport: true } 
        });
        walking.search(start, end);
    },
    // 。。。
    // 。。。
    // 。。。
    // 。。。
    // 添加交互行为
    addEvent(){
        // 键盘事件
        document.addEventListener('keydown',event=> {
            if(event.code == 'Enter') {
                // 获取起点
                let start_addr = this.start_element.value;
                // 获取终点
                let end_addr = this.end_element.value;
                // 判断输入框是否为空
                if(start_addr == "" || end_addr == "") {
                    // 提示
                    alert("输入框不能为空");
                    return false;
                }
                // 调用步行方法
                this.walk(start_addr , end_addr);
            }
        })

        // 手机端没有“回车”按键
        this.start_element.onkeypress= this.end_element.onkeypress=(event) => {
            if(event.which === 13) { 
                //点击回车要执行的事件
                 // 获取起点
                 let start_addr = this.start_element.value;
                 // 获取终点
                 let end_addr = this.end_element.value;
                 // 判断输入框是否为空
                 if(start_addr == "" || end_addr == "") {
                     // 提示
                     alert("输入框不能为空");
                     return false;
                 }
                 // 调用步行方法
                 this.walk(start_addr , end_addr);
            }
        }
    }
}